home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / ddj1291.zip / STAT.ZIP / EXAMPLE.ZIP / PATEST.C < prev   
C/C++ Source or Header  |  1990-05-06  |  6KB  |  324 lines

  1. /*
  2. ** File:    patest.c
  3. **
  4. ** Description:    This is a collection of simple routines to test the
  5. **        accuracy of the statistical performance analysis programs
  6. **        for the PC and for the ES 1800 emulator.
  7. **
  8. */
  9.  
  10. /* Default delay timing parameters */
  11. #define DELAY_ONE 1
  12. #define DELAY_TWO 2
  13. #define DELAY_THREE 3
  14. #define DELAY_FOUR 4
  15. #define DELAY_FIVE 5
  16. #define DELAY_SIX 6
  17. #define DELAY_SEVEN 7
  18. #define DELAY_EIGHT 8
  19. #define DELAY_NINE 9
  20. #define DELAY_TEN 10
  21. #define DELAY_ELEVEN 11
  22. #define DELAY_TWELVE 12
  23. #define DELAY_THIRTEEN 13
  24. #define DELAY_FOURTEEN 14
  25. #define DELAY_FIFTEEN 15
  26.  
  27. #define DELAY_SCALE 10        /* Effectively muliplies values by 1000 */
  28. #define DELAY_LOOPS 5        /* Default number of times thru main loop */
  29.  
  30. /* Loop delay parameters.  These are done as globals to allow easy access to
  31. ** the timing parameters via the ES 1800 emulator.  This allows different
  32. ** timing configurations to be tested without having to recompile and link
  33. ** this code.  Kludgie, but it encourages easy experimentation. */
  34. long final_sumL = 0;
  35. int time_oneN = DELAY_ONE;
  36. int time_twoN = DELAY_TWO;
  37. int time_threeN = DELAY_THREE;
  38. int time_fourN = DELAY_FOUR;
  39. int time_fiveN = DELAY_FIVE;
  40. int time_sixN = DELAY_SIX;
  41. int time_sevenN = DELAY_SEVEN;
  42. int time_eightN = DELAY_EIGHT;
  43. int time_nineN = DELAY_NINE;
  44. int time_tenN = DELAY_TEN;
  45. int time_elevenN = DELAY_ELEVEN;
  46. int time_twelveN = DELAY_TWELVE;
  47. int time_thirteenN = DELAY_THIRTEEN;
  48. int time_fourteenN = DELAY_FOURTEEN;
  49. int time_fifteenN = DELAY_FIFTEEN;
  50. int scaleN = DELAY_SCALE;
  51. int looptoloopN = DELAY_LOOPS;
  52.  
  53. /*
  54. ** Function:    long delay_xxxx(int delayN)
  55. **
  56. ** Description:    These are simple functions designed to allow varied delays.
  57. **        The code in each delay function is the identical to the code
  58. **        in all of the other delay functions.  This allows accurate
  59. **        comparision of the relative execution time of each function.
  60. **
  61. **        Fifteen of these functions should be a reasonable number to
  62. **        represent a simple "real" program.
  63. */
  64. long
  65. delay_one(delayN)
  66. int delayN;
  67. {
  68.     int i;
  69.     long sumL;
  70.  
  71.     sumL = 0L;
  72.     delayN <<= scaleN;
  73.     for (i = 0; i < delayN; i++)
  74.     sumL += (long) i;
  75.  
  76.     return(sumL);
  77. }
  78.  
  79. long
  80. delay_two(delayN)
  81. int delayN;
  82. {
  83.     int i;
  84.     long sumL;
  85.     
  86.     sumL = 0L;
  87.     delayN <<= scaleN;
  88.     for (i = 0; i < delayN; i++)
  89.     sumL += (long) i;
  90.  
  91.     return(sumL);
  92. }
  93.  
  94. long
  95. delay_three(delayN)
  96. int delayN;
  97. {
  98.     int i;
  99.     long sumL;
  100.     
  101.     sumL = 0L;
  102.     delayN <<= scaleN;
  103.     for (i = 0; i < delayN; i++)
  104.     sumL += (long) i;
  105.  
  106.     return(sumL);
  107. }
  108.  
  109. long
  110. delay_four(delayN)
  111. int delayN;
  112. {
  113.     int i;
  114.     long sumL;
  115.     
  116.     sumL = 0L;
  117.     delayN <<= scaleN;
  118.     for (i = 0; i < delayN; i++)
  119.     sumL += (long) i;
  120.  
  121.     return(sumL);
  122. }
  123.  
  124. long
  125. delay_five(delayN)
  126. int delayN;
  127. {
  128.     int i;
  129.     long sumL;
  130.     
  131.     sumL = 0L;
  132.     delayN <<= scaleN;
  133.     for (i = 0; i < delayN; i++)
  134.     sumL += (long) i;
  135.  
  136.     return(sumL);
  137. }
  138.  
  139. long
  140. delay_six(delayN)
  141. int delayN;
  142. {
  143.     int i;
  144.     long sumL;
  145.     
  146.     sumL = 0L;
  147.     delayN <<= scaleN;
  148.     for (i = 0; i < delayN; i++)
  149.     sumL += (long) i;
  150.  
  151.     return(sumL);
  152. }
  153.  
  154. long
  155. delay_seven(delayN)
  156. int delayN;
  157. {
  158.     int i;
  159.     long sumL;
  160.     
  161.     sumL = 0L;
  162.     delayN <<= scaleN;
  163.     for (i = 0; i < delayN; i++)
  164.     sumL += (long) i;
  165.  
  166.     return(sumL);
  167. }
  168.  
  169. long
  170. delay_eight(delayN)
  171. int delayN;
  172. {
  173.     int i;
  174.     long sumL;
  175.     
  176.     sumL = 0L;
  177.     delayN <<= scaleN;
  178.     for (i = 0; i < delayN; i++)
  179.     sumL += (long) i;
  180.  
  181.     return(sumL);
  182. }
  183.  
  184. long
  185. delay_nine(delayN)
  186. int delayN;
  187. {
  188.     int i;
  189.     long sumL;
  190.     
  191.     sumL = 0L;
  192.     delayN <<= scaleN;
  193.     for (i = 0; i < delayN; i++)
  194.     sumL += (long) i;
  195.  
  196.     return(sumL);
  197. }
  198.  
  199. long
  200. delay_ten(delayN)
  201. int delayN;
  202. {
  203.     int i;
  204.     long sumL;
  205.     
  206.     sumL = 0L;
  207.     delayN <<= scaleN;
  208.     for (i = 0; i < delayN; i++)
  209.     sumL += (long) i;
  210.  
  211.     return(sumL);
  212. }
  213.  
  214. long
  215. delay_eleven(delayN)
  216. int delayN;
  217. {
  218.     int i;
  219.     long sumL;
  220.     
  221.     sumL = 0L;
  222.     delayN <<= scaleN;
  223.     for (i = 0; i < delayN; i++)
  224.     sumL += (long) i;
  225.  
  226.     return(sumL);
  227. }
  228.  
  229. long
  230. delay_twelve(delayN)
  231. int delayN;
  232. {
  233.     int i;
  234.     long sumL;
  235.     
  236.     sumL = 0L;
  237.     delayN <<= scaleN;
  238.     for (i = 0; i < delayN; i++)
  239.     sumL += (long) i;
  240.  
  241.     return(sumL);
  242. }
  243.  
  244. long
  245. delay_thirteen(delayN)
  246. int delayN;
  247. {
  248.     int i;
  249.     long sumL;
  250.     
  251.     sumL = 0L;
  252.     delayN <<= scaleN;
  253.     for (i = 0; i < delayN; i++)
  254.     sumL += (long) i;
  255.  
  256.     return(sumL);
  257. }
  258.  
  259. long
  260. delay_fourteen(delayN)
  261. int delayN;
  262. {
  263.     int i;
  264.     long sumL;
  265.     
  266.     sumL = 0L;
  267.     delayN <<= scaleN;
  268.     for (i = 0; i < delayN; i++)
  269.     sumL += (long) i;
  270.  
  271.     return(sumL);
  272. }
  273.  
  274. long
  275. delay_fifteen(delayN)
  276. int delayN;
  277. {
  278.     int i;
  279.     long sumL;
  280.     
  281.     sumL = 0L;
  282.     delayN <<= scaleN;
  283.     for (i = 0; i < delayN; i++)
  284.     sumL += (long) i;
  285.  
  286.     return(sumL);
  287. }
  288.  
  289.  
  290. /*
  291. ** Function:    void main()
  292. **
  293. ** Description:    This is a simple routine to run the various delay routines.
  294. **        The delay time variables are all globals to allow
  295. **        experimentation with the timing parameters using the
  296. **        ES 1800 emulator.
  297. */
  298. void
  299. main()
  300. {
  301.     int i;
  302.  
  303.     final_sumL = 0L;
  304.  
  305.     for (i = 0; i < looptoloopN; i++)
  306.     {
  307.     final_sumL += delay_one(time_oneN);
  308.     final_sumL += delay_two(time_twoN);
  309.     final_sumL += delay_three(time_threeN);
  310.     final_sumL += delay_four(time_fourN);
  311.     final_sumL += delay_five(time_fiveN);
  312.     final_sumL += delay_six(time_sixN);
  313.     final_sumL += delay_seven(time_sevenN);
  314.     final_sumL += delay_eight(time_eightN);
  315.     final_sumL += delay_nine(time_nineN);
  316.     final_sumL += delay_ten(time_tenN);
  317.     final_sumL += delay_eleven(time_elevenN);
  318.     final_sumL += delay_twelve(time_twelveN);
  319.     final_sumL += delay_thirteen(time_thirteenN);
  320.     final_sumL += delay_fourteen(time_fourteenN);
  321.     final_sumL += delay_fifteen(time_fifteenN);
  322.     }
  323. }
  324.